//import 'package:amap_base/amap_base.dart';

import 'dart:async';
import 'dart:convert';

import 'package:date_format/date_format.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:flutter_hotwork/HomePage.dart';
import 'package:flutter_hotwork/bean/BaseBean.dart';
import 'package:flutter_hotwork/bean/yonghuribaobiaobean.dart';
import 'package:flutter_hotwork/bean/yuebaohuizongbean.dart';
import 'package:flutter_hotwork/home/RoadChoice.dart';
import 'package:flutter_hotwork/home/Home.dart';
import 'package:flutter_hotwork/homepage/BaseTitleBar.dart';
import 'package:flutter_hotwork/homepage/BaseViewBar.dart';
import 'package:flutter_hotwork/utils/DioUtils.dart';
import 'package:fluttertoast/fluttertoast.dart';
// import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';

import '../LoadingDialog.dart';
import '../Toast.dart';

class tongjibaobiaoyonghuyuebiaoPage extends StatefulWidget {
  @override
  tongjibaobiaoribiaoState createState() => new tongjibaobiaoribiaoState();
}

class tongjibaobiaoribiaoState extends State<tongjibaobiaoyonghuyuebiaoPage> {

  Map selectArea;
  bool hasdata=false;
  yuebaohuizongbean yuebaobean;
  double totalqi=0.0;


  ///接收选择的结果
  void handleSelect (Map targetArea) {
    setState(() {
      selectArea = targetArea;
      getribaobiaoList();
      // initData(selectArea['proviceIndex'],selectArea['cityIndex']);
    });
  }
  @override
  void initState() {
    super.initState();
    DioUtils.createInstance();
  }

  @override
  void dispose() {
//    _amapLocation.stopLocate();
    super.dispose();
  }
  var time = formatDate(new DateTime.now(),[yyyy,'-',mm,"-",dd]);
  var time2 = formatDate(new DateTime.now(),[yyyy,'-',mm]);
  var time3 = formatDate(new DateTime.now(),[yyyy]);
  void getribaobiaoList() async {
    showDialog(
        context: context,
        builder: (context) {
          return new LoadingDialog();
        });
    // Navigator.pop(context);
    try {
      Response response;
      response = await DioUtils.dio.get(
          DioUtils.API_PREFIX + "/statistics/report/getmonthtj?years="+time3+"&id="+selectArea['id']);
      Map respMap = json.decode(response.data);
      yuebaobean = yuebaohuizongbean.fromJson(respMap);
      Navigator.pop(context);
      if (yuebaobean.code == 0) {
        hasdata=true;
        setState(() {

        });
      } else {
         LocalToast.toast(context,msg: yuebaobean.message);
      }
    } catch (e) {
      Navigator.pop(context);
       LocalToast.toast(context,msg: "请选择用户");
    }
  }

  @override
  Widget build(BuildContext context) {
    ScrollController controller = ScrollController();
    double rpx = MediaQuery.of(context).size.width / 750;
    return Scaffold(
        body:
        new CustomScrollView(
            shrinkWrap: true,
            // 内容
            slivers: <Widget>[
        new SliverPadding(
        padding: const EdgeInsets.all(0),
        sliver: new SliverList(
        delegate: new SliverChildListDelegate(
        <Widget>[
            Container(
              child: Row(
                children: [
                  Container(
                    margin:  EdgeInsets.only(left: 0, right: 0, top:5, bottom: 5),
                    child:
                    InkWell(
                      onTap: (){
                        showBottomSheet(context: context, builder: (_)=>Container(
                          height: 200.0,
                          child: AreaSelection(
                            onSelect: handleSelect,
                            initProviceIndex: selectArea == null ? 0 : selectArea['proviceIndex'],
                            initCityIndex: selectArea == null ? 0 : selectArea['cityIndex'],
                            // initCountyIndex: selectArea == null ? 0 : selectArea['countyIndex'],
                          ),
                        ));
                      },
                      child:
                      Container(
                          height: 20,
                          margin: EdgeInsets.only(left: 10, right: 0, top:0, bottom: 0),
                          padding:  EdgeInsets.only(left: 2, right: 0, top:0, bottom: 0),
                          decoration: BoxDecoration(
                            border: new Border.all(color: Colors.blue, width: 0.5), // 边色与边宽度
                            color: Colors.white, // 底色
                            //        borderRadius: new BorderRadius.circular((20.0)), // 圆角度
                          ),
                          child:
                          Row(
                            children: [
                              Container(
                                width:100,
                                child:
                                Text(selectArea != null ? selectArea['address'] : "请选择用户"  ,
                                  style: TextStyle(color: Colors.black,fontSize: 10),
                                  overflow: TextOverflow.ellipsis,
                                ) ,
                              ),

                              Container(width: 5,),
                              Image.asset(
                                'images/jiantou.png',
                                width: 14.0,
                                height: 20.0,
                              ),
                            ],
                          )
                      ),



                    ),
                  ),

                  FlatButton(
                    onPressed: () {
                      DatePicker.showDatePicker(context,
                          // 是否展示顶部操作按钮
                          showTitleActions: true,
                          // 最小时间
                          minTime: DateTime(2018, 3, 5),
                          // 最大时间
                          maxTime: DateTime(2099, 6, 7),
                          // change事件
                          onChanged: (date) {

                            print('change $date');
                          },
                          // 确定事件
                          onConfirm: (date) {
                            time = formatDate(date,[yyyy,'-',mm,"-",dd]);
                            time2 = formatDate(date,[yyyy,'-',mm]);
                            time3 = formatDate(date,[yyyy]);
                            setState(() {
                              getribaobiaoList();
                            });
                            print('confirm $time');
                          },
                          // 当前时间
                          currentTime: DateTime.now(),
                          // 语言
                          locale: LocaleType.zh);
                    },
                    child:
                    Container(
                        width: 100,
                        height: 20,
                        margin: EdgeInsets.only(left: 10, right: 0, top:0, bottom: 0),
                        padding:  EdgeInsets.only(left: 10, right: 0, top:0, bottom: 0),
                        decoration: BoxDecoration(
                          border: new Border.all(color: Colors.blue, width: 0.5), // 边色与边宽度
                          color: Colors.white, // 底色
                          //        borderRadius: new BorderRadius.circular((20.0)), // 圆角度
                        ),
                        child:
                        Row(
                          children: [
                            Image.asset(
                              'images/rili.png',
                              width: 14.0,
                              height: 20.0,
                            ),
                            Container(width: 5,),
                            Text(
                              '$time3',
                              style: TextStyle(color: Colors.black,fontSize: 10),
                            )

                          ],
                        )
                    ),
                  ),

                  InkWell(
                    onTap: (){
                      getribaobiaoList();
                    },
                    child:
                    Container(
                        width: 50,
                        height: 20,
                        margin: EdgeInsets.only(left: 10, right: 0, top:0, bottom: 0),
                        padding:  EdgeInsets.only(left: 2, right: 2, top:0, bottom: 0),
                        decoration: BoxDecoration(
                          // border: new Border.all(color: Colors.blue, width: 0.5), // 边色与边宽度
                          color: Colors.blue, // 底色
                          borderRadius: new BorderRadius.circular((5.0)), // 圆角度
                        ),
                        child:
                        Row(
                          mainAxisAlignment:MainAxisAlignment.center,
                          children: [
                            Text("查询",
                              style: TextStyle(color: Colors.white,fontSize: 10),
                            )

                          ],
                        )
                    ),
                  ),
                ],
              ),
            ),

            Row(

              children: [
                Flexible(fit: FlexFit.tight, child: SizedBox()),
                Text("月用汽量汇总表",
                  style: TextStyle(color: Colors.black87,fontSize: 12,fontWeight: FontWeight.bold),
                ),
                Flexible(fit: FlexFit.tight, child: SizedBox()),
              ],
            ),


            //根据是否有数据展示
            hasdata?
            Container(
              child:
              Column(
                  children: [

                    Container(
                      width: rpx*730,
                      height: 0.5,
                      color: Colors.grey,
                    ),
                    Container(
                      width: rpx*730,
                      height: 5,
                    ),
                    Container(
                      padding: EdgeInsets.only(left: 10, right: 10, top: 0, bottom: 0),
                      child:
                      Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        mainAxisSize: MainAxisSize.max,
//                交叉轴的布局方式，对于column来说就是水平方向的布局方式
                        crossAxisAlignment: CrossAxisAlignment.center,
                        //就是字child的垂直布局方向，向上还是向下
                        verticalDirection: VerticalDirection.down,
                        children: [
                          Container(
                            height: 30,
                            width: rpx*115,
                            child:
                            Text("日期",
                              style: TextStyle(color: Colors.black, fontSize: 8,),
                            ),
                          ),
                          Container(
                            height: 30,
                            width: rpx*115,
                            child:
                            Text("用汽量",
                              style: TextStyle(color: Colors.black, fontSize: 8,),
                            ),
                          ),
                        ],

                      ),

                    ),


                    Container(
                      width: rpx*750,
                      child:
                      // Expanded(
                      //   child:
                      genContentList(
                          yuebaobean.result,context, controller
                      ),
                      // ),
                    ),




                  ]),
            ) //根据是否有数据展示
                :Container()
          ],
    )))])





    );

  }


  genContentList(List<Result> data, BuildContext context, controller) {
    double rpx = MediaQuery
        .of(context)
        .size
        .width / 750;

    return ListView.builder(
      shrinkWrap: true,
      controller: controller,
      itemCount: data.length,
      itemBuilder: (BuildContext context, int index) {
        return
          Container(
            padding: EdgeInsets.only(left: 10, right: 10, top: 0, bottom: 0),
            child:
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              mainAxisSize: MainAxisSize.max,
//                交叉轴的布局方式，对于column来说就是水平方向的布局方式
              crossAxisAlignment: CrossAxisAlignment.center,
              //就是字child的垂直布局方向，向上还是向下
              verticalDirection: VerticalDirection.down,
              children: [
                Container(
                  height: 30,
                  width: rpx*115,
                  child:
                  Text(data[index].ym,
                    style: TextStyle(color: Colors.black, fontSize: 8,),
                  ),
                ),
                Container(
                  height: 30,
                  width: rpx*115,
                  child:
                  Text(data[index].sumsettlementdaily,
                    style: TextStyle(color: Colors.black, fontSize: 8,),
                  ),
                ),
              ],

            ),

          );
        // Expanded(
        //   child:
        // Flexible(
        //   child:
        // getItemContentList(data[index].focusHotUserVos,context,controller),
        // )
        // )

      },
    );
  }



}






















